/**
 * 
 */
package route;

import graph.RouteNode;

import java.util.ArrayList;
import java.util.List;


/**
 * @author xiaohui
 * 
 */
public class Route {

	private int id;
	private List<RouteNode> coords;
	private RouteNode startPoint, endPoint;
	private double score;
	private List<Integer> usage;

	public Route(int id) {
		this.id = id;
		coords = new ArrayList<RouteNode>();
		startPoint = null;
		endPoint = null;
		score = 0;
		usage = new ArrayList<Integer>();
	}

	public Route(int id, List<RouteNode> RouteNodes, double score,
			List<Integer> usage) {
		this.id = id;
		this.coords = RouteNodes;
		this.startPoint = RouteNodes.get(0);
		this.endPoint = RouteNodes.get(RouteNodes.size() - 1);
		this.score = score;
		this.usage = usage;
	}

	/**
	 * @return the usage
	 */
	public List<Integer> getUsage() {
		return usage;
	}

	/**
	 * @param usage
	 *            the usage to set
	 */
	public void setUsage(List<Integer> usage) {
		this.usage = usage;
	}

	/**
	 * @return the coords
	 */
	public List<RouteNode> getCoords() {
		return coords;
	}

	/**
	 * @param coords
	 *            the coords to set
	 */
	public void setCoords(List<RouteNode> coords) {
		this.coords = coords;
	}

	/**
	 * @return the startPoint
	 */
	public RouteNode getStartPoint() {
		return startPoint;
	}

	/**
	 * @param startPoint
	 *            the startPoint to set
	 */
	public void setStartPoint(RouteNode startPoint) {
		this.startPoint = startPoint;
	}

	/**
	 * @return the endPoint
	 */
	public RouteNode getEndPoint() {
		return endPoint;
	}

	/**
	 * @param endPoint
	 *            the endPoint to set
	 */
	public void setEndPoint(RouteNode endPoint) {
		this.endPoint = endPoint;
	}

	/**
	 * @return the score
	 */
	public double getScore() {
		return score;
	}

	/**
	 * @param score
	 *            the score to set
	 */
	public void setScore(double score) {
		this.score = score;
	}

}
